package xyz.sekai52799.answer.a201_a400;

import xyz.sekai52799.utils.QuickSort;

public class Question324 {

//    给你一个整数数组nums，将它重新排列成nums[0] < nums[1] > nums[2] < nums[3]...的顺序。
//
//    你可以假设所有输入数组都可以得到满足题目要求的结果。
//
//
//
//    示例 1：
//
//    输入：nums = [1,5,1,1,6,4]
//    输出：[1,6,1,5,1,4]
//    解释：[1,4,1,5,1,6] 同样是符合题目要求的结果，可以被判题程序接受。
//    示例 2：
//
//    输入：nums = [1,3,2,2,3,1]
//    输出：[2,3,1,3,1,2]
//
//
//    提示：
//
//            1 <= nums.length <= 5 * 104
//            0 <= nums[i] <= 5000
//    题目数据保证，对于给定的输入 nums ，总能产生满足题目要求的结果
//
//    来源：力扣（LeetCode）
//    链接：https://leetcode.cn/problems/wiggle-sort-ii
//    著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

    public static int[] wiggleSort(int[] nums) {
        QuickSort.quickSort(nums, 0, nums.length - 1);
        int[] clone = nums.clone();
        int j = clone.length - 1;
        int i = j / 2;
        for (int count = 0;count<clone.length;count++){
            if (count % 2 == 0){
                nums[count] = clone[i];
                i--;
            } else {
                nums[count] = clone[j];
                j--;
            }
        }

        return nums;
    }
}
